SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[paEjecutarRectificacionDeLicencia]
-- <DESCRIPCION> Ejecuta una Rectificacion de Datos de Una Licencia o Elimina una Licencia dada
-- <ACTUALIZACIONES> 26 - 06 -2006 por SANES,  Jorge, Se inicializo variable @SubServicio, se cambio para que Actualice Cola y Plaza de Movimientos, se corrigio para que guarde la normafin
-- <ACTUALIZACIONES> 13 - 09 -2007 por SANES,  Jorge, se actualizo el tema de la Licencia Confirmada -- Referencia Busqueda 13-09-2007
-- <ACTUALIZACIONES> 12 - 02 - 2009 por OTERO, Marcelo y SANES,  Jorge, cuando se borra la licencia teniamos problemas al borrar registros normales, se cambio que mire solo la situacion laboral referencia "se comento el 12/02/2009"
-- <ACTUALIZACIONES> 12 - 02 - 2009 por OTERO, Marcelo y SANES,  Jorge, cuando se borra la licencia y se inserta el periodo normal nuevo, se arreglo que guarde la Situacion Extraordinaria heredada
-- <ACTUALIZACIONES> 29 - 04 - 2009 por OTERO, Marcelo y SANES,  Jorge, Cuando se trata de Eliminar Licencias Extraordinarias se borra tambien el servicio relacionado
-- <ACTUALIZACIONES> 30 - 04 - 2009 por OTERO, Marcelo y SANES,  Jorge, Problemas en las Fechas, generaba mal los subservicios 
-- <ACTUALIZACIONES> 06 - 05 - 2009 por OTERO, Marcelo y SANES,  Jorge, Se agrego Manejo de Transacciones 



@idCola INT,
--Viene el codigo de norma
@Norma INT = NULL,
@RectificaFin INT,
@TipoDeLicencia INT OUTPUT,
@SubServicioDeLaNorma INT OUTPUT,
@EsForzado BIT
AS
SET NOCOUNT ON
-- Atributos del subservicio a guardar  (tbSubServiciosRectificados) o elminar.
DECLARE @ServicioAgente INT
DECLARE @NroOrden INT
DECLARE @FechaAlta DATETIME
DECLARE @Baja varchar(1)
DECLARE @FechaBaja DATETIME
DECLARE @FechaTermino DATETIME
DECLARE @Movimiento INT
DECLARE @TramiteAlta INT
DECLARE @TramiteBaja INT
DECLARE @NormaInicio INT
DECLARE @NormaFin INT
DECLARE @Plaza INT
DECLARE @SituacionLaboral INT
DECLARE @SituacionExtraordinaria INT
DECLARE @Nivel INT
DECLARE @Modalidad INT
DECLARE @Zona INT
DECLARE @Licencia INT
DECLARE @CodEnfermedad INT
DECLARE @EntidadCertificadora INT
DECLARE @NroCertificado INT
DECLARE @FechaCertificado DATETIME
DECLARE @EstadoLiqExt INT
DECLARE @idSubServicio INT
DECLARE @Error INT
DECLARE @Diagnostico varchar(300)
DECLARE @Servicio INT
DECLARE @FBajaAux DATETIME
DECLARE @BajaS varchar(1)

-- Atributos del SS Licencia a INSERTar en la cola
DECLARE @Agente INT
DECLARE @PlazaC INT
DECLARE @Fecha DATETIME
DECLARE @Organizacion INT
DECLARE @REsponsable INT
DECLARE @Fecha1 DATETIME
DECLARE @Fecha2 DATETIME
DECLARE @FechaTerminoC DATETIME
DECLARE @SitRev INT
DECLARE @NivelC INT
DECLARE @modalidadC INT
DECLARE @zonaC INT
DECLARE @cargosalarial INT
DECLARE @LicenciaC INT
DECLARE @cantidadhoras INT
DECLARE @movimientoC INT
DECLARE @estado INT
DECLARE @observaciones varchar(255)
DECLARE @CausaAlta INT
DECLARE @borrar varchar(1)
--DECLARE @Diagnostico varchar(1000)
DECLARE @Destino INT
DECLARE @SubServicio INT
DECLARE @normatemp INT
DECLARE @Enfermedad INT
DECLARE @Confirmada VARCHAR(1)


DECLARE @SubServicioCuandoEsBorrar INT 
DECLARE @SitLabAsociadaCuandoEsBorrar INT 
DECLARE @IdServicioRelInterservicioABorrar INT 

SELECT @Error = 0


-- Se Inicializo @SubServicio - 26-06-2006
SELECT @TipoDeLicencia = 0, @SubServicioDeLaNorma = 0, @SubServicio=0


DECLARE @contador INT
UPDATE tb_MovimientosDocentes set contador = contador + 1, anio = year(getdate()) WHERE idMovimiento = 1
SELECT @contador = contador FROM tb_MovimientosDocentes WHERE idMovimiento = 1

--Saco los valores de la ColaDeMovimientos correspondientes a idCola
SELECT @Agente = Agente, @PlazaC = Plaza, @Fecha = Fecha, @Organizacion = Organizacion, @Responsable = Responsable, @Fecha1 = Fecha1,
	@Fecha2 = Fecha2, @SitRev = SitRev, @NivelC = Nivel, @ModalidadC = Modalidad, @ZonaC = Zona, @cargosalarial = cargosalarial, @licenciaC = licencia,
	@cantidadhoras = cantidadhoras, @movimientoC = movimiento, @Estado = Estado, @Observaciones = observaciones, @CausaAlta = CausaAlta, 
	@FechaTerminoC = FechaTermino
   FROM tb_ColaDeMovimientos 
   WHERE idCola = @idCola

-- Obtengo el subservicio a rectificar
SELECT @idSubServicio = RectificaA, @borrar=borrar, @Enfermedad = Enfermedad, @Confirmada = Confirmada, @SubServicioCuandoEsBorrar = Servicio
	FROM tb_PlazasDeMovimiento 
	WHERE idCola = @idCola


-- Obtengo Datos de la Licencia a Rectificar
SELECT  @SitLabAsociadaCuandoEsBorrar = SituacionLaboralAsociada   FROM tb_licencias WHERE idLicencia = @LicenciaC


-- Primero extraigo todos los valores del SubServicio que se va a rectificar.
SELECT @ServicioAgente = Servicioagente, @NroOrden = NroOrden9, @FechaAlta = FechaAlta, @FechaBaja = Fechabaja,@FechaTermino = FechaTermino, @Movimiento = Movimiento,
	@TramiteAlta = TramiteAlta, @TramiteBaja = TramiteBaja, @NormaInicio = NormaInicio, @NormaFin = NormaFin, @Plaza = Plaza,
	@Nivel = Nivel, @Modalidad = Modalidad, @Zona = Zona, @Licencia = Licencia, @CodEnfermedad = CodEnfermedad,
	@NroCertificado = NroCertificado, @EntidadCertificadora = EntidadCertificadora, @FechaCertificado = FechaCertificado, @EstadoLiqExt = EstadoLiqExt, @BajaS = Baja
   FROM tb_SubServiciosAgentes 
   WHERE idSubServicio = @idSubServicio


-- Si la licencia requiere enfermedad y no se especifica al momento de cargar NO se confirma el movimiento. Para el Resto de los casos mantiene lo que se puso en la pantalla (13-09-2007)
IF (SELECT RequiereRegEnfermedad FROM Tb_Licencias WHERE idLicencia = @LicenciaC) = 'S' AND (@Enfermedad IS NULL OR @Enfermedad = 0) 
	SELECT @Confirmada = 'N'
ELSE 
	IF  (SELECT RequiereRegEnfermedad FROM Tb_Licencias WHERE idLicencia = @LicenciaC) = 'N'  AND  (SELECT SituacionLaboralAsociada FROM Tb_Licencias WHERE idLicencia = @LicenciaC) <> 1 AND @Fecha2 IS NULL
			SELECT @Confirmada = 'N'


-- Si se rectifica como INICIO
IF @RectificaFin = 0
BEGIN
	IF @Norma IS NULL
		SELECT @Norma = @NormaInicio
END
ELSE
	IF @RectificaFin > 0 and @Norma is NULL   -- Modificado el 26-6-06 porque no guardaba la normafin
		SELECT @Norma = @NormaFin

SELECT @FBajaAux = @FechaBaja

SELECT @Servicio = ServicioAgente, @SituacionExtraordinaria = SituacionExtraordinaria  FROM tb_SubServiciosAgentes WHERE idSubServicio = @idSubServicio


BEGIN TRANSACTION RectLicencia

IF @Borrar = 'S'
   BEGIN	

		-- <ACTUALIZACIONES> 29 - 04 - 2009 
		-- Si la licencia que se borro es una Licencia Extraordinaria - Elimino Servicio Relacionado
		IF @SitLabAsociadaCuandoEsBorrar = 1 
			BEGIN


				SET @IdServicioRelInterservicioABorrar = 0 
						
				SELECT @IdServicioRelInterservicioABorrar = S.idServicioAgente  
				  FROM tb_SubserviciosAgentes SS 
				  INNER JOIN tb_RelInterservicios REL ON REL.idServicio2 = SS.ServicioAgente 
				   INNER JOIN tb_ServiciosAgentes S ON S.idServicioAgente = REL.idServicio AND S.FechaAlta = SS.FechaAlta   
				  WHERE SS.idSubServicio = @SubServicioCuandoEsBorrar AND REL.TipoRelacion = 8 
		

				IF @IdServicioRelInterservicioABorrar  <> 0 AND @IdServicioRelInterservicioABorrar IS NOT NULL 
		   			BEGIN		

						DELETE  FROM tb_RelInterservicios WHERE idServicio = @IdServicioRelInterservicioABorrar OR idServicio2 = @IdServicioRelInterservicioABorrar
						SELECT @Error = @@Error
						IF @Error <> 0
					    		GOTO SALIR
						
						DELETE  FROM tb_SubserviciosAgentes WHERE ServicioAgente = @IdServicioRelInterservicioABorrar
						SELECT @Error = @@Error
						IF @Error <> 0
					    		GOTO SALIR
						
						DELETE  FROM tb_ServiciosAgentes WHERE idServicioAgente = @IdServicioRelInterservicioABorrar
						SELECT @Error = @@Error
						IF @Error <> 0
					    		GOTO SALIR
					END 		
			END
		
		---------------------------------------------------------------------------------------------------------------------------------------------------------

   END	


-- Borro la licencia a rectificar. (tambien se puede guardar)
DELETE FROM tb_SubServiciosAgentes WHERE idSubServicio = @idSubServicio
SELECT @Error = @@Error
IF @Error <> 0
	GOTO SALIR


IF @Borrar = 'S'
	BEGIN	

		DECLARE @sla INT
		DECLARE @sea INT
		DECLARE @FechaAltaA DATETIME	
		DECLARE @ids INT
		DECLARE @slp INT
		DECLARE @sep INT
		DECLARE @FechaBajaP DATETIME
		SELECT @ids = idSubServicio, @sla = situacionlaboral, @sea = situacionextraordinaria, @FechaAltaA = FechaAlta FROM tb_SubServiciosAgentes WHERE dateadd(day,-1,@fechaalta) = FechaBaja AND ServicioAgente = @Servicio
	
		--Aca verificaba que sea un periodo normal para modificarlo
		IF (@sla = 5) --  AND (@sea=1)  se comento el 12/02/2009
		BEGIN
			SELECT @FechaAlta = @FechaAltaA
			DELETE FROM tb_SubServiciosAgentes WHERE idsubServicio = @ids
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
		END
	
		SELECT @ids = idsubServicio, @slp = situacionlaboral, @sep = situacionextraordinaria, @FechaBajaP = FechaBaja FROM tb_SubServiciosAgentes WHERE dateadd(day,1,@fechabaja) = FechaAlta AND ServicioAgente = @Servicio
	
		--Aca verificaba que sea un periodo normal
		IF (@slp = 5)  --AND (@sep=1)  se comento el 12/02/2009
		BEGIN
			SELECT @FechaBaja = @FechaBajaP
			DELETE FROM tb_SubServiciosAgentes WHERE idsubServicio = @ids
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
		END
	
		DECLARE @BajaSS varchar(1)
		IF @FechaBaja IS NULL
			SELECT @BajaSS = 'N'
		ELSE
			SELECT @BajaSS = 'S'
	
		IF @sea IS NULL 
			SET @sea = 1			

		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
		SituacionLaboral, TramiteAlta, TramiteBaja, Zona)
		VALUES (@BajaSS, null, null, 1, @FechaAlta , @FechaBaja, null, null, null, @ModalidadC, 5, @NivelC, null, null, null, @NroOrden, @Plaza, @Servicio, @sea ,5, null, null, 0) -- 12-02-2009 se puso SituacionExtraordinaria = @sea, tenia un 1 
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR
		--
		SELECT  @SubServicio = @@IDENTITY
	
		SELECT @SubServicioDeLaNorma = -1
		SELECT @TipoDeLicencia = -1

		-- Actualizar Cola y Plaza de Movmientos
		UPDATE tb_ColaDeMovimientos SET Estado = CASE WHEN @EsForzado = 0 THEN 4 ELSE 5 END, NTUserEjecutor = SYSTEM_USER, FechaEjecucion = GETDATE()  WHERE idCola = @idCola
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		UPDATE tb_PlazasDeMovimiento SET Servicio = @SubServicio WHERE idCola = @idCola
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

	
	END
ELSE
             BEGIN
		
		DECLARE @sitlab INT
		DECLARE @sitext INT
		DECLARE @idss INT
		DECLARE @FAlta DATETIME
		DECLARE @FBaja DATETIME

		-- Caso Revisado 30-04-2009		
		IF @Fecha1 > @FechaAlta
		BEGIN
			SELECT @sitlab = situacionlaboral, @sitext = situacionextraordinaria, @idss = idSubServicio, @FAlta = FechaAlta
				 FROM tb_SubServiciosAgentes 
				WHERE ServicioAgente = @Servicio AND @FechaAlta = dateadd(day,1,FechaBaja)
			
			--Verificaba que sea un periodo normal
			IF @sitlab=5 -- AND @sitext=1  se comento 30-04-2009
			BEGIN
				SELECT @FechaAlta = @FAlta
				DELETE FROM tb_SubServiciosAgentes WHERE idsubServicio = @idss
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
			END
		
			IF @sitext IS NULL
				SET @sitext = 1 
 
			INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, NormaAnterior)
			VALUES ('S', @Enfermedad, null, 1, @FechaAlta , dateadd(day,-1,@Fecha1), null, null, null, @ModalidadC, 5, @NivelC, null, null, null, @NroOrden, @Plaza, @Servicio, @sitext, 5, null, null, 0, @NormaInicio)

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
		END 
		

		-- Caso Revisado 30-04-2009
		IF (@Fecha2 < @FechaBaja) AND @FechaBaja IS NOT NULL
		BEGIN
			SELECT @sitlab = situacionlaboral, @sitext = situacionextraordinaria, @idss = idSubServicio, @FBaja = FechaBaja
				 FROM tb_SubServiciosAgentes
				 WHERE ServicioAgente = @Servicio AND @FechaBaja = dateadd(day,-1,FechaAlta)

			if @sitlab=5 --AND @sitext=1 se comento el 30-04-2009
			BEGIN
				SELECT @FechaBaja = @FBaja
				DELETE FROM tb_SubServiciosAgentes WHERE idsubServicio = @idss

				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
			END

			IF @sitext IS NULL
				SET @sitext = 1 

			DECLARE @BajaSSB varchar(1)
			IF @FechaBaja IS NULL
				SELECT @BajaSSB = 'N'
			ELSE
				SELECT @BajaSSB = 'S'
 
			INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, NormaAnterior)
			VALUES (@BajaSSB, null, null, 1, dateadd(day,1,@Fecha2) ,@FechaBaja, null, null, null, @ModalidadC, 5, @NivelC, null, null, null, @NroOrden, @Plaza, @Servicio, @sitext, 5, null, null, 0, @NormaInicio)
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
		

		END
		
		-- Caso Revisa 30-04-2009
		IF @Fecha1<@FechaAlta 
		BEGIN
			SELECT @sitlab = situacionlaboral, @sitext = situacionextraordinaria, @idss = idSubServicio, @FBaja = FechaBaja ,@FAlta = FechaAlta
				FROM tb_SubServiciosAgentes
				 WHERE ServicioAgente = @Servicio AND @FechaAlta = dateadd(day,1,FechaBaja)

			-- if @sitlab = 5 AND @sitext=1
		 	IF @Fecha1 = @FAlta
				 DELETE FROM tb_SubserviciosAgentes WHERE idsubServicio = @idss
			ELSE
				UPDATE tb_SubServiciosAgentes SET FechaBaja = dateadd(day,-1, @Fecha1) WHERE idsubServicio = @idss

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR


		END


		IF (@Fecha2>@FechaBaja) AND @FechaBaja Is Not Null 
		BEGIN
			SELECT @sitlab = situacionlaboral, @sitext = situacionextraordinaria, @idss = idSubServicio, @FBaja = FechaBaja 
				FROM tb_SubServiciosAgentes 
				WHERE ServicioAgente = @Servicio AND @FechaBaja = dateadd(day,-1,FechaAlta)
				--if @sitlab = 5 AND @sitext=1
				IF @Fecha2 = @FBaja
					DELETE tb_SubServiciosAgentes  WHERE idsubServicio = @idss
				ELSE 	
					UPDATE tb_SubServiciosAgentes set FechaAlta = dateadd(day,1, @Fecha2), NormaAnterior = @NormaInicio WHERE idsubServicio = @idss

				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
		END
		
		-- Porque la sitlab y la sitext usan los datos del servicio a rectificar y no los relacionados a la nueva licencia
		SELECT @SituacionLaboral = SituacionLaboralAsociada FROM tb_Licencias WHERE idLicencia = @LicenciaC
		-- Se quito porque llegamos a la conclusion de que la Situacion Extraordinaria es heredada de la que esta rectificando y no de la licencia (ej. comision servicio) --30-04-2009
		--SELECT @SituacionExtraordinaria = SituacionExtAsociada FROM tb_Licencias WHERE idLicencia = @LicenciaC
		
		--Alta a la nueva licencia (Se borro anteriormente)
		IF @Plaza IS NOT NULL
		BEGIN
			IF @Fecha2 Is Null
				SELECT @BajaS = 'N'
			ELSE
				SELECT @BajaS = 'S'
		
			INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
				FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
				SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal)
			VALUES (@BajaS, @Enfermedad, null, 1, @Fecha1 , @Fecha2, null, 
				  null, @LicenciaC, @ModalidadC, 3, @NivelC, CASE @RectificaFin WHEN 1 THEN @Norma ELSE @NormaFin END, CASE @RectificaFin WHEN 0 THEN @Norma ELSE @NormaInicio END, null, @NroOrden, @Plaza, @Servicio, @SituacionExtraordinaria, 
				 @SituacionLaboral, null, null, 0, @Confirmada, @contador) -- Se cambio 'S' por @Confirmada  - 13-09-2007

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

			SELECT  @SubServicio = @@IDENTITY

		END
		
		DECLARE @BajaServicio DATETIME
		SELECT @BajaServicio = FechaBaja FROM tb_ServiciosAgentes WHERE idServicioAgente = @Servicio
		
		-- Ahora veo si es el ultimo subservicio que no estaba dado de baja y le doy fecha de baja
		IF @fecha2 is not null AND @BajaServicio is null AND not exists (SELECT top 1 ServicioAgente FROM tb_SubserviciosAgentes WHERE Servicioagente = @Servicio AND FechaAlta > @Fecha2)
		BEGIN
			SELECT @Plaza = Plaza FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio
		
			IF @Plaza IS NOT NULL
			BEGIN
				INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
				FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
				SituacionLaboral, TramiteAlta, TramiteBaja, Zona)
				VALUES ('N', null, null, 1, dateadd(day,1,@Fecha2), null, null, null, null, @ModalidadC, 5, @NivelC, null, null, null, @NroOrden, @Plaza, @Servicio, 1, 5, null, null, 0)
			
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR

			END
		END
		
		----------------------------------------------------------------------------------------------------------------------------------------
		------------------------- PARA CONTROLAR LA BAJA DEL ULTIMO SUBSERVICIO...... 
		----------------------------------------------------------------------------------------------------------------------------------------
		IF EXISTS(SELECT top 1 ServicioAgente FROM tb_SubServiciosAgentes WHERE ServicioAgente = @Servicio AND FechaAlta = DATEADD(DAY, 1, @Fecha2) AND FechaBaja IS NULL)
		  BEGIN
			DECLARE @UltimosIdss INT
			SELECT @UltimosIdss = IdSubServicio 
				FROM tb_SubServiciosAgentes
				 WHERE ServicioAgente = @Servicio AND FechaAlta = DATEADD(DAY, 1, @Fecha2) AND FechaBaja IS NULL
		 	UPDATE tb_SubServiciosAgentes SET Baja = 'N' WHERE IdSubServicio = @UltimosIdss
			--
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		  END
		
		-- Actualizar Cola y Plaza de Movmientos
		UPDATE tb_ColaDeMovimientos SET Estado = CASE WHEN @EsForzado = 0 THEN 4 ELSE 5 END, NTUserEjecutor = SYSTEM_USER, FechaEjecucion = GETDATE()  WHERE idCola = @idCola
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		UPDATE tb_PlazasDeMovimiento set Servicio = @SubServicio WHERE idCola = @idCola
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR
		
		--
		IF Exists(SELECT top 1 ServicioAgente FROM tb_subserviciosagentes ss, tb_serviciosagentes sa WHERE ss.servicioagente = sa.idservicioagente AND ss.licencia = @licenciaC AND ss.fechaalta = @fecha1)
		  BEGIN
			SELECT @NormaTemp = normatemporal FROM tb_subserviciosagentes ss, tb_serviciosagentes sa WHERE ss.servicioagente = sa.idservicioagente AND ss.licencia = @licenciaC AND ss.fechaalta = @fecha1
			UPDATE tb_subserviciosagentes set normatemporal = @normatemp WHERE idsubservicio = @subservicio
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		  END
	
		--SELECT @LicenciaC IdLicencia, @SubServicio SubServicio, 0 Cod, '1' Diagnostico
		SELECT @SubServicioDeLaNorma = @SubServicio
		SELECT @TipoDeLicencia =  @LicenciaC
		
             END -- /ELSE Borrar = 'S




SALIR:

-- SI NO HAY ERROR SE CONFIRMA LA TRANSACCION
IF @Error = 0
	COMMIT TRANSACTION RectLicencia
ELSE
	ROLLBACK TRANSACTION RectLicencia
GO
GRANT EXECUTE ON  [dbo].[paEjecutarRectificacionDeLicencia] TO [PersonalDocente]
GO
